青少年怀孕对母亲和儿童都是高风险,它们更有可能导致早产,低出生体重,分娩病危症和死亡。许多青春期怀孕是意料之外的,但年轻女孩可能会继续怀孕,放弃接受教育和就业的机会,或寻求不安全的堕胎方法。生殖健康是与生殖系统及其功能和过程有关的身心健康状态,可以通过怀孕和分娩期间的教育和服务,安全有效的避孕措施以及性传播疾病的预防和治疗来提供支持,低收入和中等收入国家中,怀孕和分娩的病发症是导致育龄妇女和致残的主要原因。
对一些青少年而言,怀孕和分娩是有计划、受期待的结果,但对许多人不是这样。青少年怀孕更常见于贫穷、没有受过教育的农村社区。在一些国家,未婚怀孕并不鲜见。相比之下,一些少女可能面临结婚的社会压力,而且一旦结婚,就有必须生产的压力。低收入和中等收入国家有30%以上的少女在18岁以前结婚,约有14%结婚时未满15岁。一些少女不知道如何避孕,性教育在许多国家都很缺乏。她们可能感到太难以或羞于寻求避孕服务;避孕药可能过于昂贵或者没有广泛或以合法渠道提供。即便在避孕药广泛提供的情况下,性活跃的青春期少女使用它们的几率也比成年人低。少女可能无法拒绝非自愿的性行为或抵制强迫的性行为,这些通常都是无保护的性行为。针对全球青少年怀孕的社会现状,该项目主要利用了全球青少年怀孕率,孕妇死亡率,各国人均GDP的数据来分析这三项指标的关系,并引申出青少年怀孕率所映射出的社会问题。
import numpy as np
import pandas as pd
import csv,os
from pyecharts.charts import Bar,Tab,Line,Map,Timeline,Grid,Scatter
from pyecharts import options as opts
import pandas as pd
dfa = pd.read_csv('Adolescent_fertility_rate.csv',encoding = 'utf8')
dfa
dfa1 =dfa.dropna(axis=0,how='any')
dfa1
x轴 = [int(x)for x in dfa1.columns.values[-8:]]
x轴
dfa2=print(list(dfa1.CountryName))
dfa2
青少年怀孕率= list(zip(list(dfa1.CountryName)))
print(青少年怀孕率)
print(type(青少年怀孕率))
from pyecharts.faker import Faker
from pyecharts.charts import Map
from pyecharts import options as opts
from pyecharts.globals import ChartType, SymbolType
def timeline_map() -> Timeline:
tl = Timeline()
for i in range(2010,2017):
map0 = (
Map()
.add(
"青少年怀孕率", (list(zip(list(dfa1.CountryName),list(dfa1["{}".format(i)])))), "world",is_map_symbol_show = False
)
.set_global_opts(
title_opts=opts.TitleOpts(title="".format(i),subtitle="",
subtitle_textstyle_opts=opts.TextStyleOpts(color="red",font_size=16,font_style="italic")),
visualmap_opts=opts.VisualMapOpts(min_=0, max_=100,series_index=0),
)
)
tl.add(map0, "{}".format(i))
return tl
timeline_map().render_notebook()
dfb = pd.read_csv('GDP.csv',encoding = 'utf8')
dfb
dfb1 =dfb.dropna(axis=0,how='any')
dfb1
x轴 = [int(x)for x in dfb1.columns.values[-8:]]
x轴
dfb2=print(list(dfb1.CountryName))
dfb2
全球人均GDP= list(zip(list(dfb1.CountryName)))
print(全球人均GDP)
print(type(全球人均GDP))
from pyecharts.faker import Faker
from pyecharts.charts import Map
from pyecharts import options as opts
from pyecharts.globals import ChartType, SymbolType
def timeline_map() -> Timeline:
tl = Timeline()
for i in range(2010,2017):
map0 = (
Map()
.add(
"全球人均GDP", (list(zip(list(dfb1.CountryName),list(dfa1["{}".format(i)])))), "world",is_map_symbol_show = False
)
.set_global_opts(
title_opts=opts.TitleOpts(title="".format(i),subtitle="",
subtitle_textstyle_opts=opts.TextStyleOpts(color="red",font_size=16,font_style="italic")),
visualmap_opts=opts.VisualMapOpts(min_=0, max_=100,series_index=0),
)
)
tl.add(map0, "{}".format(i))
return tl
timeline_map().render_notebook()
import pandas as pd
df =pd.read_csv("GDPandAFP_max.csv",encoding = 'GBK')
df
print(list(df.country))
print(list(df.GDP))
print(list(df.Adolescent_fertility_rate))
八国对比双指标数据 = list(zip(list(df.GDP),list(df.Adolescent_fertility_rate)))
print(八国对比双指标数据)
八国对比双指标数据 = zip(list(df.GDP),list(df.Adolescent_fertility_rate))
print(八国对比双指标数据)
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line,Scatter
def grid_vertical() -> Grid:
bar = (
Bar()
.add_xaxis(list(df.country))
.add_yaxis("青少年怀孕率最高八国GDP",list(df.GDP))
.set_global_opts(title_opts=opts.TitleOpts(title="青少年怀孕率最高八国GDP"))
)
line = (
Line()
.add_xaxis(list(df.country))
.add_yaxis("青少年怀孕率最高八国青少年怀孕率",list(df.Adolescent_fertility_rate))
.set_global_opts(
title_opts=opts.TitleOpts(title="青少年怀孕率最高八国青少年怀孕率", pos_top="48%"),
legend_opts=opts.LegendOpts(pos_top="48%"),
)
)
grid = (
Grid()
.add(bar, grid_opts=opts.GridOpts(pos_bottom="60%"))
.add(line, grid_opts=opts.GridOpts(pos_top="60%"))
)
return grid
grid_vertical().render_notebook()
import pandas as pd
df =pd.read_csv("min_AFR.csv",encoding = 'GBK',index_col='CountryName')
df
x轴 = [int(x)for x in df.columns.values[-4:]]
x轴
Netherlands=list(df.loc['Netherlands'].values)[-4:]
Netherlands
Finland=list(df.loc['Finland'].values)[-4:]
Finland
Korea=list(df.loc['Korea'].values)[-4:]
Korea
Luxembourg=list(df.loc['Luxembourg'].values)[-4:]
Luxembourg
import pandas as pd
dfe = pd.read_csv("education.csv",index_col=0)
dfe.head()
dfe.columns = [int(x) for x in dfe.columns]
dfe.index = ['Finland','Mali']
dfe.head()
dfe.loc["Finland",:]
# 增加标题title,利用Layout做排版
# plotly.offline.init_notebook_mode()
import plotly as py
import plotly.graph_objs as go
Finland = go.Scatter(
x=[pd.to_datetime('01/01/{y}'.format(y=x), format="%m/%d/%Y") for x in dfe.columns.values],
y=dfe.loc["Finland",:].values,
name = "Finland"
)
Mali = go.Scatter(
x=[pd.to_datetime('01/01/{y}'.format(y=x), format="%m/%d/%Y") for x in dfe.columns.values],
y=dfe.loc["Mali",:].values,
name = "Mali"
)
layout = dict(xaxis=dict(rangeselector=dict( buttons=list([
dict(count=1,
label="1年",
step="year",
stepmode="backward"),
dict(count=2,
label="2年",
step="year",
stepmode="backward"),
dict(count=3,
label="3年",
step="year",
stepmode="backward"),
dict(count=4,
label="4年",
step="year",
stepmode="backward"),
dict(step="all")
])),
rangeslider=dict(bgcolor="#70EC57"),
title='年份'
),
yaxis=dict(title='两国教育程度对比图'),
title="两国教育程度对比图"
)
fig = dict(data=[Finland,Mali], layout=layout)
py.offline.iplot(fig, filename = "输出中文_含时间序列的滑块选择器.html")
# ^^^这里可以只放数据data,也可以将数据data和排版layout结合,这是典型的面向对象
import pandas as pd
import csv,os
from pyecharts import options as opts
from pyecharts.globals import ChartType,SymbolType
from pyecharts.charts import Bar,Tab,Line,Map,Timeline,Grid,Scatter,Liquid
import pandas as pd
df =pd.read_csv("max_AFR.csv",encoding = 'GBK',index_col='CountryName')
df
x轴 = [int(x)for x in df.columns.values[-4:]]
x轴
Angola=list(df.loc['Angola'].values)[-4:]
Angola
Mali=list(df.loc['Mali'].values)[-4:]
Mali
Chad=list(df.loc['Chad'].values)[-4:]
Chad
Niger=list(df.loc['Niger'].values)[-4:]
Niger
BurkinaFaso=list(df.loc['BurkinaFaso'].values)[-4:]
BurkinaFaso
CentralAfricaRepublic=list(df.loc['CentralAfricaRepublic'].values)[-4:]
CentralAfricaRepublic
EquatorialGuinea=list(df.loc['EquatorialGuinea'].values)[-4:]
EquatorialGuinea
Zambia=list(df.loc['Zambia'].values)[-4:]
Zambia
import pandas as pd
import csv,os
from pyecharts import options as opts
from pyecharts.globals import ChartType,SymbolType
from pyecharts.charts import Bar,Tab,Line,Map,Timeline,Grid,Scatter,Liquid
def timeline_map() -> Timeline:
tl = Timeline()
for i in range(2010,2017):
map0 = (
Map()
.add(
"青少年怀孕率", (list(zip(list(dfa1.CountryName),list(dfa1["{}".format(i)])))), "world",is_map_symbol_show = False
)
.set_global_opts(
title_opts=opts.TitleOpts(title="".format(i),subtitle="",
subtitle_textstyle_opts=opts.TextStyleOpts(color="red",font_size=16,font_style="italic")),
visualmap_opts=opts.VisualMapOpts(min_=0, max_=100,series_index=0),
)
)
tl.add(map0, "{}".format(i))
return tl
def overlap_line_scatter() -> Bar:
x = list(['2014', '2015', '2016', '2017'])
bar = (
Bar()
.add_xaxis(x)
.add_yaxis("Netherlands", Netherlands)
.add_yaxis("Finland", Finland)
.add_yaxis("Korea", Korea)
.add_yaxis("Luxembourg", Luxembourg)
.set_global_opts(title_opts=opts.TitleOpts(title="青少年怀孕率最低四国数据"))
)
line = (
Line()
.add_xaxis(x)
.add_yaxis("Netherlands", Netherlands)
.add_yaxis("Finland", Finland)
.add_yaxis("Korea", Korea)
.add_yaxis("Luxembourg", Luxembourg)
)
bar.overlap(line)
return bar
def data() -> Bar:
x = list(['2014', '2015', '2016', '2017'])
bar = (
Bar()
.add_xaxis(x)
.add_yaxis("Angola", Angola)
.add_yaxis("Mali", Mali)
.add_yaxis("Chad", Chad)
.add_yaxis("Niger", Niger)
.add_yaxis("BurkinaFaso", BurkinaFaso)
.add_yaxis("CentralAfricaRepublic", CentralAfricaRepublic)
.add_yaxis("EquatorialGuinea", EquatorialGuinea)
.add_yaxis("Zambia", Zambia)
.set_global_opts(title_opts=opts.TitleOpts(title="Top8"))
)
return bar
tab = Tab()
tab.add(timeline_map(), "2010~2017青少年怀孕率地图")
tab.add(data(), "2014~2017青少年怀孕率最高八个国家数据")
tab.add(overlap_line_scatter(), "最低四国数据图")
tab.render_notebook()